﻿using System.ComponentModel;

namespace Super.Hmi.Utils.ThemeManager
{
    /// <summary>
    /// 主题全局类
    /// </summary>
    public class ThemeConfig : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        private AppearanceSettings _appearanceSettings = new AppearanceSettings();
        /// <summary>
        /// 外观设置
        /// </summary>
        public AppearanceSettings AppearanceSettings
        {
            get { return _appearanceSettings; }
            set
            {
                _appearanceSettings = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AppearanceSettings"));
            }
        }
        private GeneralSettings _generalSettings = new GeneralSettings();
        /// <summary>
        /// 通用设置
        /// </summary>
        public GeneralSettings GeneralSettings
        {
            get { return _generalSettings; }
            set
            {
                _generalSettings = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("GeneralSettings"));
            }
        }
        private LayoutSettings _layoutSettings = new LayoutSettings();
        /// <summary>
        /// 布局设置
        /// </summary>
        public LayoutSettings LayoutSettings
        {
            get { return _layoutSettings; }
            set
            {
                _layoutSettings = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("LayoutSettings"));
            }
        }
        private ShortcutSettings _shortcutSettings = new ShortcutSettings();
        /// <summary>
        /// 快捷键设置
        /// </summary>
        public ShortcutSettings ShortcutSettings
        {
            get { return _shortcutSettings; }
            set
            {
                _shortcutSettings = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ShortcutSettings"));
            }
        }
    }
}
